/**
 * 
 */
package name.webdizz.gadget.four.envelope.client.view;

import name.webdizz.gadget.four.envelope.client.domain.Envelope;
import name.webdizz.gadget.four.envelope.client.domain.EnvelopeSize;
import name.webdizz.gadget.four.envelope.client.domain.Expense;
import name.webdizz.gadget.four.envelope.client.event.CreditExpenseEventHandler;
import name.webdizz.gadget.four.envelope.client.event.CreditGoalEventHandler;
import name.webdizz.gadget.four.envelope.client.event.SaveExpenseEventHandler;

/**
 * @author Izzet_Mustafayev
 * 
 */
public interface IEnvelopeView {

	void showEnvelope(Envelope envelope);

	/**
	 * @param saveExpenseHandler
	 *            the saveExpenseHandler to set
	 */
	void setSaveExpenseHandler(SaveExpenseEventHandler saveExpenseHandler);

	/**
	 * Replicate changes after {@link Expense} was updated successfully.
	 * 
	 * @param expense
	 *            the updated {@link Expense}
	 */
	void replicateAfterExpenseUpdated(Expense expense);

	/**
	 * @return the envelopeSize
	 */
	EnvelopeSize getEnvelopeSize();

	/**
	 * @param creditGoalEventHandler
	 *            the creditGoalEventHandler to set
	 */
	void setCreditGoalEventHandler(CreditGoalEventHandler creditGoalEventHandler);

	/**
	 * @param creditExpenseEventHandler
	 *            the creditExpenseEventHandler to set
	 */
	public void setCreditExpenseEventHandler(final CreditExpenseEventHandler creditExpenseEventHandler);

}
